/* ajax 请求模块 */
import axios from 'axios'

// 进行修改的方法 
export default function axjx(url = '', data = {}, type = 'GET') {
    return new Promise(function (resolve, reject) {
        let promise
        if (type === 'GET') {
            // 准备url中的请求参数
            let params = ''
            Object.keys(data).forEach(key => {
                params += key + '=' + data[key] + '&'
            })
            if (params !== '') {
                params = params.substring(0, params.lastIndexOf('&'))
                url += '?' + params
            }
            // 发送 GET 请求
            promise = axios.get(url)
        } else {
            // 发送 post 请求 
            promise = axios.post(url, data)
        }

        promise
            .then(response => {
                resolve(response.data)
            })
            .catch(error => {
                reject(error)
            })
    })

}

// 最早定义的方法, 这个方法会返回 PromiseValue 对象, 使得调用方使用不方便
// export default function axjx(url = '' , data = {}, type = 'GET') {
//     let promise 
//     if (type === 'GET') {
//         // 准备url中的请求参数
//         let params = ''
//         Object.keys(data).forEach(key => {
//             params += key + '=' + data[key] + '&'
//         }) 
//         if (params !== '') {
//             params = params.substring(0 , params.lastIndexOf('&'))
//             url += '?' + params
//         }
//         // 发送 GET 请求
//         promise = axios.get(url)
//     }else {
//         // 发送 post 请求 
//         promise = axios.post(url , data)
//     }
//     // 这里是 Promise 对象
//     console.log(promise);
//     // return 出去之后是  PromiseValue
//     return promise
// }